package mpbe.Componentes.TableColEdit;

/*
 * Este codigo es software libre y se encuentra licenciado 
 * bajo los términos de la Licencia Pública General de GNU versión 3 
 * según se encuentra publicada por la Free Software Foundation.
 * http://www.gnu.org/licenses/gpl.html
 * 
 * Autor: Martin Pablo Bellanca <martin.bellanca@gmail.com>
 * web: http://mpbe.blogspot.com/
 */

import org.eclipse.swt.custom.ControlEditor;
import org.eclipse.swt.custom.TableCursor;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Table;


public abstract class WidgetsTCE {
	protected String[] TXTList = null;
	protected String TXTDefault = null;
	protected int wgSWT;
	
	// Constructores ************************
	public WidgetsTCE(int SWT, String[] lista, String txtdefault){
		wgSWT = SWT;
		TXTDefault = txtdefault;
		TXTList = lista;
		// verifica si default esta en lista y sino toma el primer valor por defecto
	}
	public WidgetsTCE(int SWT){
		wgSWT = SWT;
		TXTList = new String[]{"True", "False"};
		TXTDefault = "False";
	}
	public WidgetsTCE(int SWT, String[] lista){
		wgSWT = SWT;
		TXTList = lista;
		TXTDefault = lista[0];
		// verifica si default esta en lista y sino toma el primer valor por defecto
	}
	public WidgetsTCE(int SWT, String txtdefault){
		wgSWT = SWT;
		//TXTList = new String[]{"True", "False"};
		TXTDefault = txtdefault;
		TXTList = new String [1];
		TXTList[0]=TXTDefault;
		// verifica si default esta en lista y sino toma el primer valor por defecto
	}
	
	// Geters y Seters  ******************
	public String[] getTXTList(){return TXTList;}
	public void setTXTList(String[] lista){TXTList = lista;} //verificar que TXT exista en lista
	public String getTXTDefault(){return TXTDefault;}
	public void setTXTDefault(String txt){TXTDefault = txt;} //verificar que TXT exista en lista
	
	// Funciones abstractas  ******************
	public abstract Control getWidget();
	
	public abstract void onCursorMouseDown(EditingTCE editando, TableCursor cursor,  ControlEditor editor, Table table); 
	public abstract void onTableMouseDown(EditingTCE editando);
		// Se termina la edicion desde TableCE
		// Aca solo se define que hacer con le texto que se esta editando
	public abstract void onCursorKeyF2(EditingTCE editando, TableCursor cursor, ControlEditor editor, Table table);
	public abstract void onCursoKeyChar(EditingTCE editando, TableCursor cursor, ControlEditor editor, Table table, char car); //ver variables necesarias
	public abstract int indexOfList(String TXT); //devuelve -1 si no esta
	//public abstract void editar(EditingTCE editando, TableCursor cursor, ControlEditor editor, Table table, boolean selecttxt);
	public int getWgSWT() {
		return wgSWT;
	}
	public void setWgSWT(int wgSWT) {
		this.wgSWT = wgSWT;
	}
	
}
